🗂️ Documentação do Banco de Dados
Este documento apresenta a modelagem do banco de dados para a plataforma, com foco em perfis de usuários (estudantes), empresas, vagas e relacionamentos adicionais, como candidaturas, experiências profissionais e atividades extracurriculares.
O banco de dados da plataforma Next Generation of Lawyers é estruturado para conectar jovens talentos jurídicos a empresas e oportunidades de carreira. Ele oferece suporte a perfis de estudantes e empresas, bem como seus relacionamentos com experiências profissionais, prêmios, atividades extracurriculares, vagas e candidaturas.
1. Estrutura do Banco de Dados
-
Usuários (Estudantes): Contas pessoais contendo dados básicos, acadêmicos e profissionais, incluindo interesses, objetivos de carreira, hobbies, biografia e campos opcionais como tipo de bolsa e ocupação atual. Estudantes também podem adicionar experiências, prêmios e atividades extracurriculares ao seu perfil.
-
Empresas: Perfis institucionais com campos como nome, e-mail, logo, missão, valores e descrição. As empresas podem criar e gerenciar vagas.
-
Vagas: Oportunidades de estágio, emprego ou desenvolvimento, com detalhes como requisitos, área jurídica, benefícios, remuneração e referência à empresa responsável.
-
Candidaturas: Registros das aplicações dos estudantes às vagas, incluindo status e data da candidatura.
-
Experiências: Histórico profissional do estudante, detalhando cargo, empresa, período e observações adicionais.
-
Prêmios: Conquistas acadêmicas ou profissionais, como bolsas de estudo, competições ou reconhecimentos institucionais.
-
Atividades Extracurriculares: Participações em organizações estudantis, projetos ou iniciativas sociais.
2. Diagrama ERD
Abaixo está o diagrama ERD utilizando dbdiagram.io:
🧑🎓 User
Campo | Tipo | Descrição |
---|---|---|
id | Int | Identificador único |
full_name | String | Nome completo |
String | E-mail do usuário (único) | |
password | String | Senha criptografada |
next_year | Int? | Ano de participação no projeto NEXT |
university | String? | Universidade atual |
graduation_year | Int? | Ano de graduação |
profile_photo | String? | URL da foto de perfil |
linkedin_url | String? | URL do perfil no LinkedIn |
interests | String[] | Áreas de interesse |
career_goals | String? | Objetivos de carreira |
hobbies | String[] | Hobbies pessoais |
bio | String? | Biografia / resumo profissional |
current_job | String? | Cargo atual (se houver) |
scholarship_type | String? | Tipo de bolsa (integral/parcial) |
created_at | DateTime | Data de criação |
updated_at | DateTime | Última atualização |
Relacionamentos:
- 1:N com
Experience
,Award
,Extracurricular
,Application
.
🧪 Experience
Campo | Tipo | Descrição |
---|---|---|
user_id | Int | Referência ao usuário |
role | String | Cargo |
company | String | Nome da empresa |
start_date | DateTime | Data de início |
end_date | DateTime | Data de término |
description | String? | Descrição adicional |
created_at | DateTime | Data de criação |
updated_at | DateTime | Última atualização |
🏅 Award
Campo | Tipo | Descrição |
---|---|---|
user_id | Int | Referência ao usuário |
title | String | Nome do prêmio/bolsa |
institution | String | Instituição concedente |
year | Int | Ano da premiação |
created_at | DateTime | Data de criação |
updated_at | DateTime | Última atualização |
🎓 Extracurricular
Campo | Tipo | Descrição |
---|---|---|
user_id | Int | Referência ao usuário |
activity | String | Nome da atividade |
organization | String | Organização responsável |
year | Int | Ano de participação |
created_at | DateTime | Data de criação |
updated_at | DateTime | Última atualização |
🏢 Company
Campo | Tipo | Descrição |
---|---|---|
id | Int | Identificador único |
name | String | Nome da empresa |
String | E-mail corporativo (único) | |
password | String | Senha criptografada |
description | String? | Descrição da empresa |
logo | String? | URL do logo |
mission | String? | Missão da empresa |
values | String? | Valores da empresa |
created_at | DateTime | Data de criação |
updated_at | DateTime | Última atualização |
Relacionamentos:
- 1:N com
Job
.
📄 Job
Campo | Tipo | Descrição |
---|---|---|
id | Int | Identificador único |
title | String | Título da vaga |
description | String | Descrição da vaga |
requirements | String | Requisitos para candidatura |
area | String | Área jurídica |
salary | String? | Faixa salarial |
benefits | String? | Benefícios oferecidos |
location | String? | Localização da vaga |
company_id | Int | Referência à empresa |
created_at | DateTime | Data de criação |
updated_at | DateTime | Última atualização |
Relacionamentos:
- 1:N com
Application
.
📬 Application
Campo | Tipo | Descrição |
---|---|---|
id | Int | Identificador único |
user_id | Int | Referência ao estudante |
job_id | Int | Referência à vaga |
status | String | Status da candidatura ("Applied", "Interview", "Offer") |
applied_at | DateTime | Data da candidatura |
🔗 Relacionamentos
User 1 — N Experience
User 1 — N Award
User 1 — N Extracurricular
User 1 — N Application
Company 1 — N Job
Job 1 — N Application
☁️ Hospedagem do Banco de Dados — AWS RDS (PostgreSQL)
📌 Visão Geral
O banco de dados da plataforma Next Generation of Lawyers está hospedado na Amazon Web Services (AWS) utilizando o serviço RDS (Relational Database Service) com PostgreSQL 15. A hospedagem na AWS oferece alta disponibilidade, backups automáticos, escalabilidade e segurança robusta.
⚙️ Configuração da Instância
Parâmetro | Valor |
---|---|
Nome da instância | next-db |
Região | us-east-1 (Norte da Virgínia) |
Versão do PostgreSQL | 15 |
Conectividade pública | Ativada (com regras no Security Group) |
Endpoint | database-1.cfssllf0qlz6.us-east-1.rds.amazonaws.com |
Porta | 5432 |
Backup automático | Ativado |
Usuário principal | postgres |
Banco inicial | next_db |
🔐 Acesso Seguro
✅ Configure o Security Group da VPC para permitir conexões na porta 5432 a partir de:
- Seu endereço IP (para desenvolvimento local)
- Seu provedor de hospedagem do backend (ex.: Vercel, Railway, Render)
🔗 URL de Conexão
DATABASE_URL="postgresql://postgres:<senha>@database-1.cfssllf0qlz6.us-east-1.rds.amazonaws.com:5432/next_db"
🛠️ Migrações Prisma
Após configurar a conexão, execute:
npx prisma migrate resolve --applied "*"
npx prisma migrate deploy
✅ Conclusão
A arquitetura e a hospedagem do banco de dados garantem segurança, confiabilidade, escalabilidade e fácil integração com os serviços da plataforma Next Gen Lawyers.